This invention relates to the field of digital filtering.
Filters have been used in signal processing systems for many years. In general such filters have been linear filters since they are better understood and easier to implement. The introduction of digital signal processing has however produced a requirement for filters having non-linear characteristics since, for example, digital to analogue converters and analogue to digital converters introduce non-linearities which may only be overcome either by increasingly sophisticated converter designs or by the use of non-linear filters to compensate for such effects.
A major advantage of digital filters is that they may be adaptive--that is to say their filtering characteristics may be adapted in response to an error signal. A digital filter may model a transmission circuit even if the operating characteristics of the transmission are not fully known. However the filter model is made more complicated if the transmission circuit includes non-linear elements. More difficulties arise if the complete circuit also includes linear dispersions--ie linear circuits which require memory in the filter model. The present invention is therefore concerned with a digital filter which models a transmission circuit consisting of a non-linear no-memory element followed by a linear dispersion.
It is known to model a non-linear element followed by linear dispersion by means of a large memory with an associated shift register. The memory has stored therein a plurality of precalculated output values and the outputs from the shift register stages are used to address appropriate memory locations to produce the required output. This type of arrangement is suitable with a relatively small memory but becomes impractical when a large memory is required. A further disadvantage of such a model is that an adaptive filter of this type takes much longer to adapt than a linear transversal filter.
A second known approach is to model the non-linearity as a memory look up table and then supply the output of the look up table to a linear transversal filter. Such a filter would adapt quickly but the values stored within the memory would require many bits in order to accurately represent the output of the non-linearity. This is not difficult in itself but it would require the linear transversal filter to perform multiplications with very large numbers.